function AT_ekf(v){
	function ekf(o,s1,s2){
		var i,p,N;var v1=1/s1;v2=1/s2;var s=Math.round(2/(v1+v2));t=[0];t2=[];a=(v2-v1)/(s-1);os={};ot={}
		t2[s]=1
		for(i=1;i<=s;i++){
			t[i]=t[i-1]+v1;t2[s-i]=t2[s-i+1]-v2
			v1+=a;v2-=a
		}
		for(i=1;i<=s;i++)t[i]=((s-i)*t[i]+i*t2[i])/s
		for(p in o)os[p]=v.van.a[p]
		for(i=1;i<=s;i++){
			for(p in o)ot[p]=(v.van.a[p]!=N)?os[p]+(o[p]-os[p])*t[i]:o[p]
			v.vkf(ot,1)
		}
		return s
	}
	return ekf
}